1452. Кролики

 

Как-то наконец земляне нашли обитаемую планету, назвали ее ТТВ, и отправили вместе с кораблем туда одного кролика. Кролику понравился климат новой планеты и через месяц он произвел на свет еще одного кролика. Известно, что каждый месяц каждый кролик, присутствующий на планете, производил на свет еще одного кролика. На планете откуда-то взялся монстр, который в начале месяца съедал k кроликов, если только их становилось строго больше k. В задаче необходимо определить количество кроликов, которое будет на планете через n месяцев после прибытия туда космического корабля с первым кроликом.

 

Вход. Первая строка содержит количество месяцев n (0 ≤ n ≤ 100), вторая – число кроликов k (0 ≤ k ≤ 10000), которое съедал монстр.

 

Выход. Определить количество кроликов, которое будет находиться на планете ТТВ через n месяцев после поселения туда первого кролика. Известно, что результат для любого теста всегда не больше 2*109.

 

Пример входа

Пример выхода

5

10

12

 

 

 

РЕШЕНИЕ

циклы

 

Анализ алгоритма

Достаточно промоделировать процесс размножения и поедания кроликов.

 

Реализация алгоритма

Читаем входные данные. Установим изначально количество кроликов res равным 1.

 

scanf("%lld %lld",&n,&k);

res = 1;

 

Пока не пройдет n месяцев моделируем жизнь на планете.

 

while(n--)

{

 

Поедание монстром кроликов.

 

  if (res > k) res -= k;

 

Размножение кроликов.

 

  res += res;

}

 

Выводим количество кроликов на планете через n месяцев

 

printf("%lld\n",res);